Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

355
Visualizações
Recibo un error de solicitud incorrecta 400: "Se requiere un cuerpo de solicitud que no esté vacío" de mi solicitud de recuperación, a pesar de que mi solicitud de recuperación tiene un cuerpo

Cada vez que realizo una solicitud de recuperación desde mi interfaz utilizando el siguiente código js, recibo un estado de solicitud 400 Bad. El cuerpo de la respuesta tiene un objeto de error que dice: "Se requiere un cuerpo de solicitud que no esté vacío".

Cuando inspecciono la sección de solicitud en mi pestaña de red de devtools, dice "no hay carga útil para esta solicitud". Así que me parece que no está enviando la sección del cuerpo de mi Fetch.

Llega al método .then() después.

Este es el código mecanografiado:

 fetch(`api/person/${person.id}`, { method: "PUT", headers: { "Content-Type": "application/json" }, body: JSON.stringify(person) }) .then(() => this.router.navigate(["/"]))

este es el back-end de C#:

 [HttpPut("{id}")] public IActionResult Put(int id, Person person) { person.Id = id; try { var updatedPerson = _personRepository.Update(person); if (updatedPerson != null) { return Ok(updatedPerson); } return NotFound(); } catch (ArgumentNullException) { return BadRequest(); } }

Tenga en cuenta que la solicitud ni siquiera llega a este controlador. No se alcanzarán puntos de quiebre si coloco alguno aquí.

Esta es una aplicación de una sola página que ejecuto desde Visual Studio 2019.

Sin embargo, funciona con el cartero, devolviendo el código de estado 200 Ok y un objeto, y alcanzando los puntos de interrupción del back-end. La URL de solicitud contiene la int id y el cuerpo que contiene un objeto Json.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Bueno, esta no es una pregunta que tenga una respuesta clara. Estos son los pasos que podría necesitar tomar para averiguarlo:

  • Asegúrese de que en su solicitud de búsqueda el argumento persona realmente existe, solo haga console.log (persona) antes de buscar

  • Asegúrese de que el servidor acepte contenido de tipo 'aplicación/json'. Aunque en este caso el código de respuesta debería haber sido diferente.

  • Verifique los encabezados de respuesta, y ¿los orígenes de back-end y front-end son los mismos? Lo que tienes que ver es lo siguiente:

     Access-Control-Allow-Headers: * Access-Control-Allow-Methods: PUT Access-Control-Allow-Origin: *

Postman funciona como una aplicación nativa en su PC y tiene una forma diferente de enviar solicitudes en lugar de su navegador, a veces esto provoca resultados poco claros.

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay una manera de probar lo que está sucediendo.

  1. Vaya a su sitio web principal (http://localhost:5001 o lo que sea) en su navegador
  2. Abra las herramientas de desarrollo del navegador (F12 en la mayoría de los navegadores)
  3. copie / pegue la siguiente búsqueda (código a continuación) en su consola de desarrollo y presione

¿Lo que sucede? ¿Recupera los datos (impresos en la consola)? Esto probablemente lo llevará al siguiente paso que debe tomar.

 fetch("api/person/1") .then(response => response.json()) .then(data => console.log(data));
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda